package com.mall4jcola.cloud.conrtoller;
import com.alibaba.cola.dto.SingleResponse;
import com.mall4jcola.cloud.api.UserAuthsServiceI;
import com.mall4jcola.cloud.dto.UserAuthsVerifyQry;
import com.mall4jcola.cloud.dto.data.UserAuthsTokenDTO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @author hmxchen
 */
@RequestMapping("/{version}/ua")
@RestController
public class LoginController {
    @Resource
    private UserAuthsServiceI authAccountServiceI;
    /**
     * TODO
     * 登录接口业务逻辑：
     * 1.根据身份唯一标识+系统类型查询用户信息（视账号类型采取不同策略）
     * 2.对传进来的授权凭证进行加密并与用户信息中的授权凭证比较
     * 3.根据查询的用户信息和系统类型确认是否具有权限访问
     * 4.更新登录时间，登录IP,更新用户信息
     * 4.生成token返回前端
     * @param query
     * @return
     */
    @PostMapping("/login")
    public SingleResponse<UserAuthsTokenDTO> login(@RequestBody UserAuthsVerifyQry query) {
        return authAccountServiceI.authAccount(query);
    }
}
